[アップデート] Amazon Q Developer のコード変換機能で .NET サポートがプレビューになりました

[アップデート] Amazon Q Developer のコード変換機能で .NET サポートがプレビューになりました

Clock Icon2024.12.04

いわさです。

AWS re:Invent 2024 に参加中です。
12/3 のキーノートで Amazon Q Developer のコード変換機能が .NET をパブリックプレビューでサポートしました。

https://aws.amazon.com/about-aws/whats-new/2024/12/amazon-q-developer-transformation-net-porting-preview/

既に Java がサポートされていたのですが、.NET をはじめ様々なプラットフォームの変換機能が Amazon Q Developer で今回サポートされています。

.NET 機能は要はモダナイズをアシストしてくれるようで、.NET Framework から .NET への変換などが対象です。
以前からモダナイゼーション用のツールとして Porting Assistant for .NET などのツールが提供されていました。
それらは静的な変換のみが対応されており人の判断や作業が必要なシーンも多かったのですが、今回の Amazon Q Developer 機能では生成 AI が良い感じに変換をかけてくれるようで、精度は不明ですがより人の手が不要になったと考えることが出来そうです。

利用にあたっての前提条件は、変換元 .NET Framework バージョンが 3.5 以上、.NET Core 3.1 以上であること、Amazon Q Developer が Pro Tier であることなどいくつかあります。
ASP.NET Web Forms などはサポートされていないようです。無念。

今回簡単なアプリケーションを変換してみましたのでその様子を紹介します。

やってみた

Windows 11 + Visual Studio 2022 でコンソールアプリケーションを作成しそのまま変換を試してみたいと思います。

事前準備

まずは Visual Studio 上に AWS Toolkit with Amazon Q 拡張機能の最新バージョンをインストールしておきましょう。

https://marketplace.visualstudio.com/items?itemName=AmazonWebServices.AWSToolkitforVisualStudio2022

.NET Framework 4.8 のコンソールアプリケーションを作成しました。

A94DEDFF-F741-4AB8-A85D-2F4832F0D1A7.png

Amazon Q Developer で Pro Tier ユーザーをサブスクライブさせておきます。

646163DD-35D3-4129-8EC3-F1CB32882423.png

Visual Studio 上で上記 Pro Tier ユーザーでサインイン済みの状態です。

53AC0A29-D9D0-46A3-B09E-2794AA78EF81.png

変換する

ソリューションエクスプローラーのコンテキストメニューに新たに「Port project with Amazon Q Developer」が追加されています。
こいつを選択しましょう。

8E5370F3-6B8F-459B-8E73-511F9BFB0E0E.png

変換先のフレームワークバージョンを選択します。

B99B7D4C-546D-48E7-8823-FA8101130747.png

あとは勝手に変換処理が走ります。とんでもなく簡単ですね。
今までのツールはいくつかステップがあったと思いますが、今回はほぼワンクリックで済みました。

26A7310E-5C9B-4192-BE94-8CFD99659EBF.png

しばらく(今回の最小限のアプリでも 3 分程度)待つと、変換処理の全ステップが完了しました。

F44D9885-C1F3-4B21-A14C-8C4CE21E1053.png

エラーの発生有無や変換されたファイルの差分などを確認することが出来ます。
複雑なプロジェクトであればこのフェーズで色々と人のチェックや作業が必要になりそうな予感がしますが、今回は特に問題なくこのままいきます。

7DB1A015-0E01-467E-A25F-72A60CC205FC_4_5005_c.jpeg

差分を確認し、問題なければ変更内容を承諾することでプロジェクトコードが更新されます。

DBBA0128-4108-42E4-BD79-164D8DC964ED_4_5005_c.jpeg

更新後プロジェクトをリロードし直し、実行してみると .NET 8.0 でコンソールが起動されました。

30610974-9C43-40D5-9FDB-D7A9BA87B25D_4_5005_c.jpeg

さいごに

本日は Amazon Q Developer のコード変換機能で .NET サポートがプレビューになったので試してみました。

従来の Porting Assistant for .NET や標準の変換ツールとの棲み分けが少しむずかしそうなのと、もう少し複雑なアプリケーションで色々試してみたいところです。
Prp Tier が必要になってしまいますが、.NET Framework 資産などをお持ちの方は是非変換機能を試してみてください。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.